A Hoare Calculus for Verifying Java Realizations of OCL-Constrained Design Models
نویسندگان
چکیده
The Object Constraint Language OCL offers a formal notation for constraining the modelling elements occurring in UML diagrams. In this paper we apply OCL for developing Java realizations of UML design models and introduce a new Hoare-Calculus for Java classes which uses OCL as assertion language. The Hoare rules are as usual for while programs, blocks and (possibly recursive) method calls. Update of instance variables is handled by an explicit substitution operator which also takes care of aliasing. For verifying a Java subsystem w.r.t. a design subsystem specified using OCL constraints we define an appropriate realization relation and illustrate our approach by an example.
منابع مشابه
Towards Verifying Java Realizations of Ocl-constrained Design Models Using Jml
The Object Constraint Language OCL is a formal textual notation that could be used for placing constraints on the modelling elements that occur in UML diagrams. Constraints include invariants on classes and types, and preconditions and postconditions of operations. OCL was designed to be used in conjunctions with UML diagrams resulting in more precise object-oriented designs. The Java Modelling...
متن کاملProvably Correct Graph Transformations with Small-tALC
We present a prototype for executing and verifying graph transformations. The transformations are written in a simple imperative programming language, and preand post-conditions as well as loop invariants are specified in the Description Logic ALC (whence the name of the tool). The programming language has a precisely defined operational semantics and a sound Hoare-style calculus. The tool cons...
متن کاملA Logic for the Java Modeling Language JML
This paper describes a specialised logic for proving specifications in the Java Modeling Language (JML). JML is an interface specification language for Java. It allows assertions like invariants, constraints, preand post-conditions, and modifiable clauses as annotations to Java classes, in a design-by-contract style. Within the LOOP project at the University of Nijmegen JML is used for specific...
متن کاملUsing Java for Parallel Computing: JCSP versus CTJ, a Comparison
Java provides support for concurrent and parallel programming through threads, monitors and its socket and Remote Method Invocation (RMI) classes. However, there have been many concerns expressed about the way in which this support is provided, e.g., [1][2], citing problems such as improper implementation of monitors and difficulty of programming with threads. Hoare’s Communicating Sequential P...
متن کاملA Hoare Calculus for Graph Programs
We present Hoare-style axiom schemata and inference rules for verifying the partial correctness of programs in the graph programming language GP. The preand postconditions of this calculus are the nested conditions of Habel, Pennemann and Rensink, extended with expressions for labels in order to deal with GP’s conditional rule schemata and infinite label alphabet. We show that the proof rules a...
متن کامل